\section{User Stories}

\subsection{Sprint Backlog}
En esta sección contemplaremos las user stories que componen el primer sprint o
sprint backlog.
Por una cuestión de facilidad para el docente, decidimos enumerarlas de la misma
manera que están 
en la herramienta propuesta \textbf{rallydev}.

\begin{itemize}
 \item[\textbf{US 21:}] Como miembro del equipo me interesa instalar el ambiente de
desarrollo.
  
\textbf{Story Points:} 3
  
\textbf{Business Value:} 1
  
\textbf{Tasks:}
  \begin{enumerate}
   \item Identificar e instalar software necesario: 2 hs
   \item Identificar e instalar librerías necesarias y configurarlas: 5 hs
   \item Crear un proyecto vacío: 1 hs
  \end{enumerate}

\textbf{Criterios de aceptación:}
\begin{enumerate}
 \item Las librerías están instaladas.
 \item Puedo recurrir a la funcionalidad de una librería instalada sin
problemas.
 \item Es posible crear un proyecto vacío que funcione correctamente sin
errores.
\end{enumerate}


\item[\textbf{US 68:}] Como usuario me interesa finalizar entrenamiento de forma manual.

\textbf{Story Points:} 1

\textbf{Business Value:} 3

\textbf{Tasks:}
\begin{enumerate}
 \item Agregar botón y mensaje de confirmación al entorno gráfico: 1 hs
 \item Implementar cancelación de entrenamiento actual: 1 hs
\end{enumerate}

\textbf{Criterios de aceptación:}
\begin{enumerate}
 \item El usuario tiene la opción de cancelar el entrenamiento.
 \item Una vez que el usuario seleccionó dicha opción, este queda finalizado
definitivamente.
\end{enumerate}


\item[\textbf{US 24:}] Como miembro del equipo me interesa tener un diseño orientado a
objetos del sistema.

\textbf{Story Points:} 21

\textbf{Business Value:} 8

\textbf{Tasks:}
\begin{enumerate}
 \item Analizar el dominio del problema :8 hs.
 \item Realizar diagrama de Objetos: 8 hs.
 \item Realizar diagrma de Clases: 8 hs.
 \item Describir escenarios relevantes de colaboración para orientar el diseño: 3 hs.
 \item Realizar los diagramas de colaboración de los escenarios planteados: 6 hs.
  \end{enumerate}
  
\textbf{Criterios de aceptación:}
\begin{enumerate}
 \item Los diagramas de colaboración realizados para los escenarios relevantes se pueden satisfacer con el diseño planteado.
 \item El diseño puede ser entendido por una persona idónea en el dominio del problema.
\end{enumerate}


\item[\textbf{US 35:}] Como usuario quiero poder comenzar un entrenamiento.

\textbf{Story Points:} 8

\textbf{Business Value:} 13

\textbf{Tasks:}
\begin{enumerate}
 \item Inicializar posición del corredor: 1 hs
 \item Iniciar seguimiento del entrenamiento: 3 hs
 \item Crear mecanismo gráfico para iniciar entrenamiento: 2 hs
\end{enumerate}

 
\textbf{Criterios de aceptación:}
\begin{enumerate}
 \item Se puede comenzar un entrenamiento, previamente definido, empezando por
su primer fase.
\end{enumerate}

\item[\textbf{US 37:}] Como usuario quiero que el sistema me notifique si debo aumentar, disminuir o mantener la velocidad de avance para poder cumplir la fase exitosamente

\textbf{Story Points:} 5

\textbf{Business Value:} 8

\textbf{Tasks:}
\begin{enumerate}
 \item Verificar velocidad actual del corredor: 2 hs
 \item Calcular velocidad actual del corredor: 2 hs
\end{enumerate}


\textbf{Criterios de aceptación:}
\begin{enumerate}
 \item Durante el curso de un entrenamiento, soy notificado si debo incrementar, disminuir o mantener la velocidad.
\end{enumerate}


\item[\textbf{US 38:}] Como usuario quiero poder ver en un mapa, durante el curso de un entrenamiento, mi posición actual y el recorrido realizado hasta el momento.

\textbf{Story Points:} 13

\textbf{Business Value:} 13

\textbf{Tasks:}
 \begin{enumerate}
  \item Insertar mapa en entorno gráfico: 3 hs
  \item Actualizar posición en mapa por cada actualización: 2 hs
  \item Interpolar gráficamente las coordenadas recibidas: 3 hs
  \item Investigar y evaluar herramientas para mostrar y pintar un mapa en un
dispositivo móvil: 2 hs
 \end{enumerate}

\textbf{Criterios de aceptación:}
\begin{enumerate}
\item Se visualiza un mapa en la aplicación.
\item Dada una traza de coordenadas geográficas, se visualiza en el mapa un recorrido pintado que pasa por todas las coordenadas.
\item Dada una nueva coordenada geográfica, se visualiza su posición en el mapa y se agrega el segmento pintado que la une al resto del camino.
\end{enumerate}

\item[\textbf{US 57:}] Como miembro del equipo quiero que el sistema determine automáticamente cuando se finaliza el entrenamiento y notifique al corredor.

\textbf{Story Points:} 8

\textbf{Business Value:} 13

\textbf{Tasks:}
\begin{enumerate}
 \item Identificar lógica para detectar el fin de una fase: 2 hs
 \item Obtener la última fase de un entrenamiento: 1 hs
 \item Generar notificación de fin de fase: 3 hs
 \item Generar notificación de fin de entrenamiento: 3 hs
\end{enumerate}
 

\textbf{Criterios de aceptación:}
\begin{enumerate}
\item Al completar la última fase del entrenamiento el mismo se considera finalizado.
\item El corredor recibe una notificación cuando esto ocurre.
\end{enumerate}


\item[\textbf{US 73:}] Como miembro del equipo necesito obtener la posición actual del corredor y el tiempo transcurrido desde el inicio del entrenamiento, para actualizar el mapa de recorrido y la velocidad a la que se desplaza.

\textbf{Story Points:} 8

\textbf{Business Value:} 13

\textbf{Tasks:}
\begin{enumerate}
 \item Obtener coordenadas de actualización de posición: 1 hs
 \item Recalcular velocidad: 3 hs
\end{enumerate}
 

\textbf{Criterios de aceptación:}
\begin{enumerate}
\item Se obtiene la velocidad y posición en base a datos.
\item Se actualizan los datos del corredor de acuerdo a la nueva información calculada.
\end{enumerate}

\item[\textbf{US 131:}] Como miembro del equipo quiero realizar un informe completo del proceso de desarrollo

\textbf{Story Points:} 8

\textbf{Business Value:} 0

\textbf{Tasks:}
\begin{enumerate}
 \item Redactar el informe integral en latex: 8 hs
\end{enumerate}
 

\textbf{Criterios de aceptación:}
\begin{enumerate}
\item Criterio de aceptación: tener el informe con todas las secciones correspondientes, sin faltas de ortografía y con el contenido acorde a lo desarrollado.
\end{enumerate}

\item[\textbf{US 132:}] Como miembro del equipo quiero realizar una presentación gráfica con slides para utilizarla en la entrega de la demo

\textbf{Story Points:} 8

\textbf{Business Value:} 0

\textbf{Tasks:}
\begin{enumerate}
 \item Relizar la presentación contando el diseño y las decisiones que se fueron tomando para su desarrollo: 8 hs.
\end{enumerate}
 

\textbf{Criterios de aceptación:}
\begin{enumerate}
\item Tener un documento de diapositiva con el diseño que se tomó para este desarrollo y explicación breve de cada sección de diseño.
\end{enumerate}



\subsection{Product Backlog}

En esta sección están las demás user stories que conforman el backlog y su
cumplimiento debería satisfacer los requerimientos del sistema.

\item[\textbf{US 69:}] Como miembro del equipo de desarrollo quiero tener almacenados diferentes tipos de entrenamiento y contar con mecanismos para agregar nuevos y eliminar existentes. \textbf{Story Points:} 3

\item[\textbf{US 53:}] Como usuario quiero poder administrar mis características como corredor, disponibilidad y objetivos a cumplir para obtener planes más adecuados a mis necesidades. \textbf{Story Points:} 5

\item[\textbf{US 72:}] Como miembro del equipo quiero tener diferentes Fases de entrenamiento, para que el sistema pueda armar los planes de entrenamiento de acuerdo a lo solicitado por el usuario. \textbf{Story Points:} $\infty$

\item[\textbf{US 33:}] Como usuario quiero que el sistema cree un plan de entrenamiento en función de los datos ingresados y a los objetivos establecidos.
\textbf{Story Points:}  $\infty$

\item[\textbf{US 36:}] Como usuario quiero que el sistema cambie a la fase a la siguiente del entrenamiento cuando la actual haya sido completada y ser notificado de este cambio para poder conocer cuál es la fase siguiente.

\item[\textbf{US 39:}] Como usuario quiero poder visualizar en qué fase del entrenamiento me encuentro y cuánto tiempo y/o distancia me falta para terminarla.

\item[\textbf{US 40:}] Como usuario quiero poder seleccionar el modo de consumo de manera manual.

\item[\textbf{US 41:}] Como miembro del equipo quiero que el sistema realice actualizaciones en diferentes tiempos según el estado de la batería del dispositivo para optimizar su uso.

\item[\textbf{US 42:}] Como usuario quiero ver datos de tiempo, distancia y recorrido de entrenamientos realizados.

\item[\textbf{US 44:}]  Como usuario quiero publicar que completé un entrenamiento en redes sociales para compartir el evento.

\item[\textbf{US 54:}] Como miembro del equipo quiero tener las posibilidad de Consultar, Crear, Modificar y/o Eliminar diferentes modos de Batería del dispositivo para poder enriquecerlo en el futuro más allá de los que existen hoy: BAJA, MEDIO, ALTA.

\item[\textbf{US 70:}] Como miembro del equipo quiero saber la posición del corredor mediante el GPS del dispositivo móvil para actualizarla y obtener estadísticas de velocidad, distancia recorrida, etc.

\item[\textbf{US 71:}] Como miembro del equipo quiero poder almacenar diferentes datos de las performances del corredor y actualizar las mejores marcas en Tiempo, Velocidad, Tiempo por Velocidad.

\item[\textbf{US 81:}] Como miembro del equipo quiero poder generarle alertas sonoras al corredor para notificarle diferentes eventos.

\item \underline{NOTA:} Si bien aquí en el informe se puede observar la puntuación de algunas stories como $\infty$, en la herramienta \textbf{rallydev} se encuentran expresadas por el número 610 ya que nos permitía valuarlas únicamente con valores numéricos.

\subsection{Velocity}

Al ser la primer iteración definimos una velocity igual a la suma de story
points del sprint backlog. Al finalizar la primer
iteración el grupo evaluará si la estimación fue correcta o no en base a las
dificultades que se tuvieron y ajustaremos dicha velocity.
Este número puede parecer un poco alto pero se justifica en que en algunos casos
de estimación, donde no todos los integrantes concordábamos,
 se optó por estimar un poco demás y no de menos, ya que es preferible 
tener un error de estimación porque una story sea más simple de lo pensado, que
más difícil de lo planeado.

Velocity: 67.

\end{itemize}
